home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / bin / bf_copy < prev    next >
Text File  |  2008-06-18  |  1KB  |  60 lines

  1. #! /bin/sh
  2.  
  3. #  bf_copy [-c] source_dir dest_dir
  4. #
  5. #    use to copy wordlist.db and related files
  6. #    from one directory to another
  7.  
  8. # $Id: bf_copy.in 5906 2005-05-08 20:09:53Z m-a $
  9.  
  10. set -e # die on errors
  11.  
  12. COMPACT=0
  13. while test "$1" ; do
  14.     case "$1" in
  15.     -c) COMPACT=1 ;;
  16.     --) shift ; break ;;
  17.     -*) echo "unknown option $1" >&2 ; exit 1 ;;
  18.     *) break;
  19.     esac
  20.     shift
  21. done
  22.  
  23. if [ $# -ne 2 ] ; then
  24.     echo 'usage: bf_copy [-c] source_dir dest_dir'
  25.     echo "   use -c to copy active logs, not all"
  26.     exit 1
  27. fi
  28.  
  29. SRC="$1"
  30. DST="$2"
  31.  
  32. # flush mempools
  33. bogoutil --db-checkpoint="$SRC" || :
  34.  
  35. mkdir "$DST"
  36.  
  37. TMP=bfc.$$.unneeded
  38. rm -f $TMP
  39. trap "rm -rf $TMP \"$DST\"" 0
  40. if test $COMPACT -eq 1 ; then
  41.   # don't copy unneeded logs
  42.   bogoutil --db-list-logfiles="$SRC" >$TMP
  43. else
  44.   : >$TMP
  45. fi
  46.  
  47. # XXX FIXME - use Berkeley DB environment probing here
  48. LOGS=`ls "$SRC"/log.* 2>/dev/null | grep -v -F -f $TMP || :`
  49. if test "$LOGS" ; then cp -p $LOGS "$DST" ; fi
  50. if test -f "$SRC"/DB_CONFIG ; then cp -p "$SRC"/DB_CONFIG "$DST" ; fi
  51.  
  52. for FILE in "$SRC"/*.db ; do
  53.     SIZE=`bogoutil --db-print-pagesize="$FILE"`
  54.     dd bs=$SIZE if=$FILE of="$DST/"`basename "$FILE"`
  55. done
  56.  
  57. if test "$LOGS" ; then bogoutil --db-recover="$DST" ; fi
  58. rm -f $TMP
  59. trap - 0
  60.